﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LoA.Shared.Physics {
	public struct PhysicalModel {
		readonly float mass;
		readonly float elasticity;
		readonly float maxForce;
		readonly float forceLoss;
		readonly float forceRegeneration;

		public PhysicalModel(float mass, float elasticity, float maxForce, float forceLoss, float forceRegeneration) {
			this.mass = mass;
			this.elasticity = elasticity;
			this.maxForce = maxForce;
			this.forceLoss = forceLoss;
			this.forceRegeneration = forceRegeneration;
		}

		/// <summary>
		/// Masa / Waga ( kilogram )
		/// </summary>
		public float Mass { get { return this.mass; } }

		/// <summary>
		/// Sprężystość ciała
		/// </summary>
		public float Elasticity { get { return this.elasticity; } }

		/// <summary>
		/// Maksymalna siła niepodległego przesunięcia (samowolnego, jeśli zwierze lub maszyna) (J)
		/// </summary>
		public float MaxForce { get { return this.maxForce; } }

		/// <summary>
		/// Wartość zużycia mocy w ciągu 1s (J)
		/// </summary>
		public float ForceLoss { get { return this.forceLoss; } }

		/// <summary>
		/// Wartość regeneracji mocy w ciągu 1s (J)
		/// </summary>
		public float ForceRegeneration { get { return this.forceRegeneration; } }

		/// <summary>
		/// Temporary Model Radius
		/// </summary>
		public float Radius { get { return 2.0f; } }
	}
}
